/*********************************************************
 * 初学之家(http://www.g2room.com)，提供Java、Javascript（js）、Jquery、
 * 等一些工具或常用功能的实现例子代码，希望能给初学者提供学习和工作上的帮助，
 * 也希望有想提供源代码的朋友能联系我，一起努力，提供更多、更全面、更详细的
 * 一些初学代码例子及经验，帮助更多的人。
 * 
 * 我的联系方式：E-Mail：g2room@163.com
 * 网址：http://www.g2room.com
 * QQ：天涯（1173930590）
 * QQ交流群：323642758
 * 
 * 本站内容为提供各种java、javascript(JS)常用的工具源代码、实例（示例）、
 * 基本配置、教程、手册等；目前Java代码提供的工具（或转换）例子代码如下：
 * BASE64转换工具、bytes相关操作、email收发、文件操作（读写、拷贝、遍历、
 * 多线程copy等）、json格式转换、日志（Log4j）操作工具、Lucene搜索引擎的
 * 创建索引和搜索、各种不同Map的使用、定时器（Quartz）的使用例子、Socket的
 * 连接传输数据例子、WebService的例子及一些常用的工具类如String、Date及
 * JDK自带的一些工具类及函数的使用例子。
 * 
 * 说明：如需直接使用本站的例子代码，请保留此说明
 * 
 ********************************************************/
package com.g2room.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 
 * 
 * @createTime: Jan 7, 2014 11:22:29 AM
 * @author: <a href="mailto:g2room@163.com">天涯</a>
 * @version: 0.1
 * @lastVersion: 0.1
 * @updateTime:
 * @updateAuthor: <a href="mailto:g2room@163.com">天涯</a>
 * @changesSum:
 * 
 */
public class Access2MySql {
	public static void main(String[] args) {
		accessData2MySql();
	}
	
	/**
	 * 获取数据库连接对象，这里只获得，需要自己在使用后进行关闭。
	 * 此处单线程执行，要并发则使用连接池
	 *
	 * @return {Connection}
	 * @auther <a href="mailto:gaoxg@FOUNDER.COM.CN">Gao Xuguo</a>
	 * 2013-2-25 下午04:36:46
	 */
	public static Connection getConn() {
		Connection conn = null;
		try {
		    //1.加载驱动
		    Class.forName("com.mysql.jdbc.Driver");
		    //2.得到连接
		    conn = DriverManager.getConnection(
		    		"jdbc:mysql://localhost:3306/wine22",
		    		"root",
		    		"123456");
		} catch(Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 关闭连接。
	 *
	 * @param {Connection} conn
	 * @auther <a href="mailto:gaoxg@FOUNDER.COM.CN">Gao Xuguo</a>
	 * 2013-2-25 下午04:39:25
	 */
	public static void closeConn(Connection conn) {
		if(null != conn) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public static void accessData2MySql(){
		try {
			try {
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
			String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/workspace/code/Java_Win7/LIV/WebRoot/wine22/db/wines_bak.mdb";
			Connection connection = DriverManager.getConnection(url);
			Statement statement = connection.createStatement();
			String querySql = "SELECT * FROM WINE";
			Connection mySqlConn = getConn();
			Statement myStatement = mySqlConn.createStatement();
			ResultSet rs = statement.executeQuery(querySql);
			while (rs.next()) {
				StringBuilder sql = new StringBuilder("insert into w_wine(id,subtypeCode,subtypeName,name,summary,marketPrice,yjfPrice,pictrue,priceArea,description,date,alcohol,scent,capacity) values(");
				sql.append(rs.getInt("w_id") + ",");
				sql.append("'" + rs.getString("w_subtype_code") + "',");
				sql.append("'" + rs.getString("w_subtype_name") + "',");
				sql.append("'" + rs.getString("w_name") + "',");
				sql.append("'" + rs.getString("w_summary") + "',");
				sql.append(rs.getFloat("w_market_price") + ",");
				sql.append(rs.getFloat("w_yjf_price") + ",");
				String pic = rs.getString("w_main_pictrue");
				sql.append("'" + pic.replace("_s.jpg", ".jpg") + "',");
				sql.append(rs.getInt("w_price_area") + ",");
				sql.append("'" + rs.getString("w_description") + "',");
				sql.append("'" + rs.getString("w_date") + "',");
				sql.append("'" + rs.getString("w_alcohol") + "',");
				sql.append("'" + rs.getString("w_scent") + "',");
				sql.append("'" + rs.getString("w_content") + "')");
				System.out.println(sql.toString());
				myStatement.execute(sql.toString());
			}
			rs.close();
			myStatement.close();
			mySqlConn.close();
			statement.close();
			connection.close();
		} catch(SQLException e) {
			e.printStackTrace();
		}
	}
}
